package com.linkhub.oms.admin.modules.product.domain.param;

import com.linkhub.oms.admin.modules.user.domain.param.BaseUserParam;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * @author Jaycle
 * @version 1.0.0
 * @Description hgf.java
 * @createTime 2024/06/21 07:53
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "LocalProductBaseParam", description = "LocalProductBaseParam")
public class LocalProductBaseParam extends BaseUserParam implements Serializable {
    @ApiModelProperty(value = "产品类型: 1-单个产品（默认）；2-包材；3-组合产品", required = true)
    @Range(min = 1, max = 3, message = "{local.product.type.not.exist}")
    private Integer productType;

    @ApiModelProperty(value = "sku", required = true)
    @NotNull
    private String sku;

    @ApiModelProperty(value = "spu")
    private String spu;

    @ApiModelProperty(value = "英文品名", required = true)
    @NotNull
    private String productEnTitle;

    @ApiModelProperty(value = "中文品名")
    private String productCTitle;

    @ApiModelProperty(value = "类目编码")
    private String categoryCode;

    @ApiModelProperty(value = "系统供应商id列表")
    private List<String> sysSupplierIdList;

    @ApiModelProperty(value = "upc码")
    private String upc;

    @ApiModelProperty(value = "fnsku码")
    private String fnsku;

    @ApiModelProperty(value = "其他商品条码")
    private String otherCode;

    @ApiModelProperty(value = "型号")
    private String model;

    @ApiModelProperty(value = "品牌")
    private String brand;

    @ApiModelProperty(value = "采购价格")
    private String purchasePrice;

    @ApiModelProperty(value = "图片")
    private String imgUrl;

    @ApiModelProperty(value = "图片2")
    private String img2;

    @ApiModelProperty(value = "图片3")
    private String img3;

    @ApiModelProperty(value = "物流属性列表：1-带磁；2-带电；3-液体；4-粉末；5-易碎；6-膏体；7-化妆品；8-纺织品")
    private List<Integer> logisticsAttributeList;

    @ApiModelProperty(value = "规格尺寸单位: 1-公制；2-英制")
    private Integer specificationUnit;

    @ApiModelProperty(value = "产品/包材信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)-重量(盎司)")
    private String specificationProductInfo;

    @ApiModelProperty(value = "包材展开信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)")
    private String specificationWrapUnfoldInfo;

    @ApiModelProperty(value = "包装单位: 1-公制；2-英制")
    private Integer wrapUnit;

    @ApiModelProperty(value = "包装产品信息，多个信息使用-拼接：长度(英寸)-宽度(英寸)-高度(英寸)-重量(盎司)")
    private String wrapProductInfo;

    @ApiModelProperty(value = "默认包材，值为包材的skuId")
    private String defaultPackingMaterialSkuId;

    @ApiModelProperty(value = "包装类型，1-盒装；2-袋装")
    private Integer wrapType;

    @ApiModelProperty(value = "Ready2Ship：0-否；1-是")
    private Integer readyShip;

    @ApiModelProperty(value = "海关编码")
    private String hsCode;

    @ApiModelProperty(value = "用途中文")
    private String cPurpose;

    @ApiModelProperty(value = "用途英文")
    private String ePurpose;

    @ApiModelProperty(value = "材质中文")
    private String cMaterial;

    @ApiModelProperty(value = "用途英文")
    private String eMaterial;

    @ApiModelProperty(value = "其它申报要素")
    private String otherDeclarationElements;

    @ApiModelProperty(value = "申报金额配置", required = true)
    private List<AmountDeclares> amountDeclares;
}
